package com.skivingcloud.report.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serial;

/**
 * excel报表模板表 实体类。
 *
 * @author skivingcloud
 * @since 2024-11-13
 */
@Schema(description = "excel报表模板表")
@Table("report_tpl")
public class ReportTpl implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Id
    @Schema(description = "主键")
    private String id;

    /**
     * 租户
     */
    @Schema(description = "租户")
    private String tenantId;

    /**
     * 模板标识
     */
    @Schema(description = "模板标识")
    private String tplCode;

    /**
     * 模板名称
     */
    @Schema(description = "模板名称")
    private String tplName;

    /**
     * 报表类型 1列表式报表 2详情式报表
     */
    @Schema(description = "报表类型 1列表式报表 2详情式报表")
    private String tplType;

    /**
     * 报表类型
     */
    @Schema(description = "报表类型")
    private String reportType;

    /**
     * 是否显示行号1是 0否
     */
    @Schema(description = "是否显示行号1是 0否")
    private String isIndex;

    /**
     * 数据集参数是否合并 1是 0否
     */
    @Schema(description = "数据集参数是否合并 1是 0否")
    private String isParamMerge;

    /**
     * luckysheet行高，列宽等额外配置
     */
    @Schema(description = "luckysheet行高，列宽等额外配置")
    private String config;

    /**
     * 冻结属性
     */
    @Schema(description = "冻结属性")
    private String frozen;

    /**
     * 图片
     */
    @Schema(description = "图片")
    private String images;

    /**
     * 查看权限 1所有人可见 2指定角色
     */
    @Schema(description = "查看权限 1所有人可见 2指定角色")
    private String viewAuth;

    /**
     * 设计密码
     */
    @Schema(description = "设计密码")
    private String designPwd;

    /**
     * 导出是否加密 1是 0否
     */
    @Schema(description = "导出是否加密 1是 0否")
    private String exportEncrypt;

    /**
     * sheet页唯一索引
     */
    @Schema(description = "sheet页唯一索引")
    private String sheetIndex;

    /**
     * 计算链，有公式的单元格信息
     */
    @Schema(description = "计算链，有公式的单元格信息")
    private String calcChain;

    /**
     * 并发控制 1是 0否
     */
    @Schema(description = "并发控制 1是 0否")
    private String concurrencyFlag;

    /**
     * 预览是否展示工具栏 1是 0否
     */
    @Schema(description = "预览是否展示工具栏 1是 0否")
    private String showToolbar;

    /**
     * 预览是否显示行标题1是 0否
     */
    @Schema(description = "预览是否显示行标题1是 0否")
    private String showRowHeader;

    /**
     * 预览是否显示列标题 1是 0否
     */
    @Schema(description = "预览是否显示列标题 1是 0否")
    private String showColHeader;

    /**
     * 预览是否显示网格线 1是02否
     */
    @Schema(description = "预览是否显示网格线 1是02否")
    private String showGridlines;

    /**
     * 上报数据后是否刷新页面 1是 0否
     */
    @Schema(description = "上报数据后是否刷新页面 1是 0否")
    private String refreshPage;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private String updater;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 是否删除 1是 0否
     */
    @Schema(description = "是否删除 1是 0否")
    private String delFlag;

    /**
     * 开启协同 1是 0否
     */
    @Schema(description = "开启协同 1是 0否")
    private String coeditFlag;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getTplCode() {
        return tplCode;
    }

    public void setTplCode(String tplCode) {
        this.tplCode = tplCode;
    }

    public String getTplName() {
        return tplName;
    }

    public void setTplName(String tplName) {
        this.tplName = tplName;
    }

    public String getTplType() {
        return tplType;
    }

    public void setTplType(String tplType) {
        this.tplType = tplType;
    }

    public String getReportType() {
        return reportType;
    }

    public void setReportType(String reportType) {
        this.reportType = reportType;
    }

    public String getIsIndex() {
        return isIndex;
    }

    public void setIsIndex(String isIndex) {
        this.isIndex = isIndex;
    }

    public String getIsParamMerge() {
        return isParamMerge;
    }

    public void setIsParamMerge(String isParamMerge) {
        this.isParamMerge = isParamMerge;
    }

    public String getConfig() {
        return config;
    }

    public void setConfig(String config) {
        this.config = config;
    }

    public String getFrozen() {
        return frozen;
    }

    public void setFrozen(String frozen) {
        this.frozen = frozen;
    }

    public String getImages() {
        return images;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public String getViewAuth() {
        return viewAuth;
    }

    public void setViewAuth(String viewAuth) {
        this.viewAuth = viewAuth;
    }

    public String getDesignPwd() {
        return designPwd;
    }

    public void setDesignPwd(String designPwd) {
        this.designPwd = designPwd;
    }

    public String getExportEncrypt() {
        return exportEncrypt;
    }

    public void setExportEncrypt(String exportEncrypt) {
        this.exportEncrypt = exportEncrypt;
    }

    public String getSheetIndex() {
        return sheetIndex;
    }

    public void setSheetIndex(String sheetIndex) {
        this.sheetIndex = sheetIndex;
    }

    public String getCalcChain() {
        return calcChain;
    }

    public void setCalcChain(String calcChain) {
        this.calcChain = calcChain;
    }

    public String getConcurrencyFlag() {
        return concurrencyFlag;
    }

    public void setConcurrencyFlag(String concurrencyFlag) {
        this.concurrencyFlag = concurrencyFlag;
    }

    public String getShowToolbar() {
        return showToolbar;
    }

    public void setShowToolbar(String showToolbar) {
        this.showToolbar = showToolbar;
    }

    public String getShowRowHeader() {
        return showRowHeader;
    }

    public void setShowRowHeader(String showRowHeader) {
        this.showRowHeader = showRowHeader;
    }

    public String getShowColHeader() {
        return showColHeader;
    }

    public void setShowColHeader(String showColHeader) {
        this.showColHeader = showColHeader;
    }

    public String getShowGridlines() {
        return showGridlines;
    }

    public void setShowGridlines(String showGridlines) {
        this.showGridlines = showGridlines;
    }

    public String getRefreshPage() {
        return refreshPage;
    }

    public void setRefreshPage(String refreshPage) {
        this.refreshPage = refreshPage;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getCoeditFlag() {
        return coeditFlag;
    }

    public void setCoeditFlag(String coeditFlag) {
        this.coeditFlag = coeditFlag;
    }

    }
